1. Field of the Invention
The present invention relates to a decoding apparatus and a decoding method for decoding LDPC (Low Density Parity Check) codes used in a communication system, recording system or the like, and more particularly, to a decoding algorithm.
2. Related Art
LDPC codes are decoded by iteratively carrying out probability calculations called “row operation” and “column operation” using a parity check matrix and calculating a posterior probability of received word data.
The row operation refers to processing of obtaining row operation data for each element of “1” using column operation data corresponding to elements of “1” for each row of a parity check matrix (parity check equation). On the other hand, the column operation refers to processing of obtaining column operation data for each element of “1” using row operation data corresponding to elements of “1” for each column of the parity check matrix. Generally, row operation is carried out on all rows of the parity check matrix and then column operation is carried out on all columns.
In LDPC code decoding processing, a row operation carrying out operation in a row direction of the parity check matrix carries out calculations on a nonlinear function, and therefore the amount of operation is particularly large. For this reason, as proposed in a document, Marc P. C. Fossorier, M. Mihalijevic and H. Imai “Reduced Complexity Iterative Decoding of Low-Density Parity Check Codes Based on Belief Propagation” IEEE Trans. on Commun. Vol. 47, No. 5, pp. 673-680, May 1999, min-sum decoding is used which obtains a minimum value of the column operation data corresponding to other elements of “1” except the element in question for each element of “1” in each row of the parity check matrix.
However, even if min-sum decoding is used, comparison operation for calculating a minimum value of column operation data must be carried out iteratively by the number of “1”s included in a row (parity check equation) to calculate a minimum value of the column operation data and the amount of row operation in the whole decoding processing is still large. Since an LDPC code having a high coding rate in particular has many “1”s included in a row (parity check equation), the amount of operation particularly increases, resulting in a problem that the decoding throughput deteriorates.